맨위로가기

ISO 15765-2

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

ISO 15765-2는 도로 차량에서 CAN(Controller Area Network)을 통한 진단 통신(DoCAN)의 전송 프로토콜 및 네트워크 계층 서비스에 대한 표준이다. 이 표준은 단일 프레임, 첫 번째 프레임, 연속 프레임, 흐름 제어 프레임의 네 가지 프레임 유형을 정의하여 CAN 네트워크를 통해 데이터를 전송한다. 흐름 제어 프레임은 분할된 전송에서 수신 측의 전송 승인을 확인하고, 연속 프레임 간 간격 및 전송 가능한 연속 프레임 수를 지정한다.

2. 프로토콜 제어 정보 (PCI) 필드 유형

ISO-TP 프로토콜은 데이터 전송을 위해 프로토콜 제어 정보(Protocol Control Information, PCI)를 사용하며, 이는 CAN 메시지의 데이터 필드 앞부분에 위치한다. PCI는 전송되는 데이터의 종류와 상태를 나타내며, 크게 네 가지 프레임 유형으로 구분된다. 각 프레임 유형은 고유한 코드 값을 가지며, 메시지의 길이나 전송 상태에 따라 적절한 프레임 유형이 사용된다.

유형코드설명
단일 프레임(SF)0최대 7바이트(일반 주소 지정) 또는 6바이트(확장 주소 지정)의 짧은 메시지를 한 번에 전송할 때 사용된다. PCI에는 프레임 유형과 데이터 길이(SF_DL)가 포함된다.
첫 번째 프레임(FF)17바이트(또는 6바이트)를 초과하는 긴 메시지를 여러 프레임으로 나누어 보낼 때, 그 시작을 알리는 프레임이다. PCI에는 프레임 유형과 전체 메시지 길이(FF_DL)가 포함된다.
연속 프레임(CF)2첫 번째 프레임(FF) 이후, 분할된 메시지의 나머지 데이터 조각들을 전송하는 데 사용된다. PCI에는 프레임 유형과 순서 번호(Sequence Number, SN)가 포함된다.
흐름 제어 프레임(FC)3긴 메시지를 수신하는 측에서 송신 측으로 보내는 응답 프레임이다. 연속 프레임(CF)의 전송 속도와 양을 조절하는 정보를 담고 있다.
예약됨4..15현재 사용되지 않고 예약된 코드 값이다.



각 프레임 유형별 PCI 필드의 구조는 다음과 같다. PCI 필드는 CAN 데이터 필드의 첫 번째 또는 첫 두 바이트(FF의 경우)를 차지한다.

CAN-TP 헤더 PCI 필드 구조
프레임 유형비트 오프셋 7..4 (바이트 0)비트 오프셋 3..0 (바이트 0)비트 오프셋 15..8 (바이트 1)비트 오프셋 23..16 (바이트 2)이후 바이트
단일 프레임 (SF)0 (유형=SF)데이터 길이 (0~7)데이터 A데이터 B데이터 ...
첫 번째 프레임 (FF)colspan="2" | 전체 메시지 길이 (8~4095)데이터 A데이터 B ...
연속 프레임 (CF)2 (유형=CF)순서 번호 (0~15)데이터 A데이터 B데이터 ...
흐름 제어 프레임 (FC)3 (유형=FC)흐름 상태 (0,1,2)블록 크기 (BS)분리 시간 (ST)(데이터 없음)


  • 단일 프레임(SF): 첫 4비트는 유형(0), 다음 4비트는 페이로드 길이(0~7)를 나타낸다.
  • 첫 번째 프레임(FF): 첫 4비트는 유형(1), 다음 12비트(나머지 4비트 + 다음 바이트 8비트)는 전체 메시지 길이(8~4095)를 나타낸다.
  • 연속 프레임(CF): 첫 4비트는 유형(2), 다음 4비트는 1부터 시작하여 15 다음 0으로 순환하는 순서 번호(Sequence Number)를 나타낸다.
  • 흐름 제어 프레임(FC): 첫 4비트는 유형(3), 다음 4비트는 흐름 상태(FS: 0=전송 계속, 1=대기, 2=오버플로)를 나타낸다. 다음 바이트는 블록 크기(BS), 그 다음 바이트는 분리 시간(ST)을 나타낸다.


CAN FD 환경에서는 더 큰 페이로드를 지원하기 위해 단일 프레임과 첫 번째 프레임의 PCI 구조가 일부 확장되었으나, 기존 ISO 15765-2와의 하위 호환성은 유지된다.

2. 1. 단일 프레임 (Single Frame, SF)

ISO-TP 프로토콜에서 정의하는 프레임 유형 중 하나이다. 단일 프레임(Single Frame, SF)은 전송할 사용자 데이터(페이로드)의 전체 크기가 CAN 버스 데이터 프레임 하나에 모두 담길 수 있을 만큼 작을 때 사용된다. 구체적으로는 최대 7바이트(일반 주소 지정 방식) 또는 6바이트(확장 주소 지정 방식)의 페이로드를 한 번에 전송할 수 있다.

단일 프레임의 프로토콜 제어 정보(Protocol Control Information, PCI)는 1바이트로 구성된다. 첫 4비트는 프레임 유형을 나타내며, 단일 프레임의 경우 이 값은 0이다. 나머지 4비트는 전송되는 페이로드의 실제 길이(1~7바이트)를 나타낸다 (SF_DL).

단일 프레임(SF) CAN-TP 헤더 구조
비트 오프셋7 .. 4 (바이트 0)3 .. 0 (바이트 0)15 .. 8 (바이트 1)23..16 (바이트 2)....
단일 프레임 (SF)0 (유형 = SF)크기 (0..7 바이트)데이터 바이트 1데이터 바이트 2데이터 바이트 ...



7바이트 이하의 짧은 메시지를 보낼 때 이 단일 프레임 형식을 사용한다. 첫 번째 바이트의 상위 4비트(유형 필드)가 0이기 때문에, 때로는 단순히 '길이-데이터' 형식으로 이루어진 더 간단한 프로토콜로 잘못 해석되기도 한다. 데이터 길이가 7바이트(또는 확장 주소 지정 시 6바이트)를 초과하는 경우에는 첫 번째 프레임(FF)과 연속 프레임(CF)을 이용한 분할 전송 방식이 사용된다.

2. 2. 첫 번째 프레임 (First Frame, FF)

(PCI 바이트 제외)바이트 17 .. 0메시지 길이 (하위 8비트)바이트 2 ~데이터 A, 데이터 B, ...메시지의 첫 부분 데이터



위 표에서 볼 수 있듯이, PCI의 첫 4비트는 프레임 유형을 나타내며 FF의 경우 값은 '1'이다. 이어지는 12비트는 전체 메시지의 길이를 바이트 단위로 나타낸다(FF_DL). 이 길이는 PCI 자체를 제외한 순수 데이터의 길이이며, 최대 4095바이트까지 표현할 수 있다. 다만 실제 애플리케이션에서는 수신 측의 버퍼 크기나 하드웨어 제약 등으로 인해 이보다 작은 값으로 제한되는 경우가 많다. PCI 필드 다음에는 분할된 메시지의 첫 번째 데이터 조각이 위치한다.

송신 측에서 FF를 보내면, 수신 측은 이를 확인하고 흐름 제어 프레임(FC)을 보내 응답한다. FC 프레임에는 이후 전송될 연속 프레임(CF)들의 전송 간격이나 한 번에 받을 수 있는 CF의 개수(블록 크기) 등의 제어 정보가 담겨 있다.

CAN FD 환경에서는 더 큰 데이터 전송을 지원하기 위해 FF의 길이 필드가 확장되었지만, 기존 ISO 15765와의 하위 호환성은 유지된다.

2. 3. 연속 프레임 (Consecutive Frame, CF)

연속 프레임(Consecutive Frame, CF)은 ISO 15765-2 프로토콜에서 여러 프레임으로 나누어 보내야 하는 긴 메시지의 두 번째 이후 데이터 조각들을 전송하는 데 사용된다. 첫 번째 프레임(FF)이 전송된 후, 수신 측의 흐름 제어 프레임(FC) 지시에 따라 송신 측에서 연속 프레임들을 보내 메시지의 나머지 부분을 전달한다.

각 연속 프레임은 1바이트 크기의 PCI(Protocol Control Information) 헤더를 가진다. 이 헤더의 구조는 다음과 같다.

연속 프레임(CF) 헤더 구조 (첫 번째 바이트)
비트 위치7 .. 43 .. 0
필드명유형 (Type)시퀀스 번호 (Sequence Number, SN)
20 ~ 15



이 시퀀스 번호는 수신 측에서 메시지 조각들이 순서대로 도착했는지, 중간에 누락된 프레임은 없는지 확인하는 데 사용된다. 첫 번째 프레임(FF)에 포함된 데이터 이후의 첫 번째 연속 프레임(CF)은 시퀀스 번호 1을 가진다.

2. 4. 흐름 제어 프레임 (Flow Control Frame, FC)

1 = WAIT (대기)
2 = OVFLW (Overflow, 오버플로우)0 ~ 2550x00 ~ 0x7F (최소 간격 0~127ms)
0xF1 ~ 0xF9 (최소 간격 100~900µs)



각 필드의 의미는 다음과 같다.



ST 값은 한 프레임의 전송 종료 시점부터 다음 프레임의 전송 시작 시점까지의 최소 시간을 의미한다. 구현 시, 이를 프레임 시작 간 간격(프레임 반복률)으로 잘못 해석하는 경우가 있을 수 있으므로 주의가 필요하다.

흐름 제어 프레임은 수신 측의 상태에 맞춰 데이터 전송 속도와 양을 동적으로 조절함으로써, CAN 버스와 같이 제한된 대역폭 환경에서도 안정적인 멀티 프레임 메시지 전송을 가능하게 한다.

3. CAN-TP 헤더

1 = 대기 (WAIT)
2 = 오버플로/중단 (OVFLW)0 = 나머지 프레임 연속 전송
> 0 = 다음 FC 프레임 전송 전까지 보낼 수 있는 CF 프레임 수0x00 ~ 0x7F: 0 ~ 127 밀리초(ms)
0xF1 ~ 0xF9: 100 ~ 900 마이크로초(µs)



FC 헤더의 첫 바이트는 유형(3)과 흐름 상태(FS) 플래그(0=계속 전송, 1=대기, 2=오버플로/중단)를 포함한다. 두 번째 바이트는 블록 크기(BS)로, 다음 FC 프레임을 기다리기 전에 송신 측이 보낼 수 있는 연속 프레임(CF)의 수를 지정한다. BS 값이 0이면, 송신 측은 나머지 모든 CF를 흐름 제어 없이 연속으로 보낼 수 있다. 세 번째 바이트는 분리 시간(ST)으로, 연속된 CF 프레임 사이의 최소 시간 간격을 나타낸다. ST 값이 0x00부터 0x7F까지는 밀리초(0~127ms) 단위의 시간 간격을 의미하고, 0xF1부터 0xF9까지는 마이크로초(100~900µs) 단위의 더 짧은 시간 간격을 지정한다. ST는 한 프레임의 전송 종료 시점부터 다음 프레임의 전송 시작 시점까지의 최소 시간을 정의한다.

송신 측은 메시지의 나머지 부분을 연속 프레임(CF)을 사용하여 전송한다. 각 CF는 1바이트 헤더(PCI)를 가지며, 상위 4비트는 유형(2)을, 하위 4비트는 시퀀스 번호(SN) 또는 인덱스를 나타낸다. 시퀀스 번호는 첫 번째 CF에서 1로 시작하여 전송되는 CF마다 1씩 증가하며, 15 다음에는 다시 0으로 순환한다(1, 2, ..., 15, 0, 1, ...). 이 번호를 통해 수신 측은 프레임 손실이나 순서 오류를 감지할 수 있다.

FF의 12비트 길이 필드는 이론적으로 최대 4095바이트의 사용자 데이터를 분할 메시지로 전송할 수 있게 하지만, 실제로는 수신 측의 버퍼 크기나 하드웨어 제약 등으로 인해 애플리케이션별 제한이 더 낮게 설정되는 경우가 많다.

CAN FD의 경우, ISO 15765-2 프로토콜은 더 큰 데이터 크기를 지원하도록 확장되었지만, 기존 ISO 15765와의 역호환성은 유지된다.

4. 타이밍 파라미터

ISO 15765-2 표준에서는 통신 과정을 제어하기 위해 여러 타이밍 파라미터를 정의한다. 대표적인 예로 P1 타이머와 P2 타이머 등이 있다.

5. 표준

참조

[1] 웹사이트 ISO 15765-2:2016 http://www.iso.org/c[...] 2019-04-05
[2] 웹사이트 ISO 15765-2:2016 http://www.iso.org/c[...] 2019-04-05
[3] 웹인용 ISO 15765-2:2016 http://www.iso.org/c[...] 2019-04-05



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com